home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-04-12 | 71.8 KB | 1,595 lines |
-
-
-
- FTP Serv-U
-
-
- FTP-Server Daemon for WinSock
-
-
- Version 1.1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- (c) 1995 Rob Beckers
-
- Cat Soft
-
-
-
-
- DISCLAIMER
- ==========
-
- I know, it's not the nicest way to start off. So let's just
- get this part over with, OK?!
-
- The FTP server program Serv-U and its documentation are
- copyright Rob Beckers. It is distributed as shareware,
- giving you the right to try it for a period of 30 days. If
- you intend to use Serv-U after the initial try-out period,
- you are obliged to pay the registration fee.
- The next paragraph is a beautiful piece of prose. In just
- two sentences it says it all. Alas, unfortunately it is
- necessary, so please bear with me.
-
- This software is provided by the regents and contributors
- 'as is' and any express or implied warranties, including,
- but not limited to, the implied warranties of
- merchantability and fitness for a particular purpose are
- disclaimed. In no event shall the regents or contributors
- be liable for any direct, indirect, incidental, special,
- exemplary, or consequential damages (including, but not
- limited to, procurement of substitute goods or services;
- loss of use, data, or profits; or business interruption)
- however caused and on any theory of liability, whether in
- contract, strict liability, or tort (including negligence or
- otherwise) arising in any way out of the use of this
- software, even if advised of the possibility of such damage.
- Contents
-
-
- CONTENTS
- ========
-
- Introduction 1
-
- 1. Making It Work - Installation 3
- 1.1 Installation 3
- 1.2 De-installation 4
- 1.3 Upgrading 4
- 1.4 Known Bugs & Problems 4
- 1.5 Changes Since Version 1.00 5
- 1.6 A Word to the Wise (but paranoid) 6
-
- 2. The Grand Tour - Menus 7
- 2.1 The File Menu 7
- 2.2 The Edit Menu 7
- 2.3 The Setup Menu 7
- 2.4 The Help Menu 14
- 2.5 The Logfile and Screen 14
-
- 3. The Inner Workings 15
- 3.1 Serv-U Internals 15
- 3.2 The SERV-U.INI File 15
-
- 4. Getting In Touch - Bugs & Registration 21
- 4.1 Reporting Bugs 21
- 4.2 Registering Serv-U 21
-
- Registration Form Serv-U 24
-
-
- INTRODUCTION
- ============
-
- Thank you for giving this program a try!
-
- With FTP Serv-U your PC will be turned into a FTP server.
- This means that others on the computer network that you are
- connected to can access your PC to copy, move, make, and
- delete files and directories, using the FTP protocol (FTP =
- File Transfer Protocol). This protocol dictates standard
- ways of communicating between computers, so that many
- different types of computers, using different operating
- systems and file formats, can exchange information.
- FTP Serv-U is a 'server' program and/or daemon. The term
- daemon comes from the ancient Greek mythology. There, the
- Daemons were half-gods, acting as messengers between the
- people on earth and the gods. This FTP server acts,
- likewise, as a messenger for file transfer between FTP
- clients and your computer. Once started it sits in the
- background waiting for a client to contact it and after
- communications are established, acting out the client's
- commands.
- There are FTP servers (and clients) for many different
- systems. This particular program is meant for PC's running
- MS-Windows that have a WinSock version 1.1 compatible TCP/IP
- stack installed.
-
- Why use this program and not one of the many other FTP
- servers that are available? For this I have to take you back
- in time a little, to about a year ago. I needed a FTP server
- to make some files available to others and tried out a
- number of server programs. One simply didn't work. Another
- would work, but as soon as someone started transferring a
- file from my PC it would lock up the whole machine until the
- transfer was complete. And then there was one that worked
- fine, but lacked all but the most basic security. So, after
- endless frustration I decided to write my own, figuring it
- couldn't be that hard. As usual things got a bit out of
- hand, but a year and over 11000 lines of C++ later you're
- looking at the result!
- So what has this FTP server to offer?
-
- * Access for multiple clients at the same time. Access
- for 'Anonymous' users. With the possibility to limit
- the number of clients at any given time, so your PC
- remains workable.
- * Lots of security! On a directory and even file basis.
- Allowing different settings for each user, and by
- putting users into 'groups' permitting easy
- maintenance for large numbers of users. There's even
- an option to allow or prohibit clients on the basis
- of their IP-number. Ideal if you want to let certain
- people roam around your computer, but you don't want
- the whole world knocking at your door (that is to
- say: they can knock, but they won't get in).
- * It allows transfer to or from ports, like PRN:,
- LPT1:, COM1:, and AUX:. This allows you to setup your
- PC as a print server by simply transferring the file
- to be printed to the desired port! Since the ports
- are part of the regular security system, a user needs
- permission to transfer to/from a port, allowing you
- to control who can use it.
- * A quite complete implementation, and very strict
- adherence to the FTP standard (found in document RFC
- 959). Supports the 'passive' command PASV. This is
- needed by WWW-browsers and proxy agents (something
- required when there is a 'firewall') for FTP
- transfer. Another feature is that you can let
- 'Anonymous' users always see the root directory ('\')
- as their login directory. This, again, is needed by
- some WWW-browsers to make FTP transfers work.
- * Easy to setup and maintain. Everything is accessible
- through menus, and for automated maintenance the
- settings are stored in an .INI file of simple format.
- * There is lots of logging! You can select how much to
- log and where (to screen and/or file). The logfile is
- of a standard format to make machine reading easy, in
- case you need to do that for accounting purposes.
- * It is fast! The file transfer speed you'll get will
- be very close to the maximum your TCP/IP stack is
- capable of (well, assuming your FTP client is at
- least as fast of course).
- * Life time free updates when registered (as long as
- Serv-U exists).
- * A very cute icon!
- * Compared to the commercial implementations, Serv-U is
- dirt cheap!
-
- If you didn't register this program, then you're looking at
- the try-out version of Serv-U. When started for the first
- time, it'll let you choose between a fully functional
- program or a somewhat crippled one. The text during startup
- will explain it clearly. If you choose the fully functional
- version then there is absolutely no difference with the
- registered version. But (yes, there had to be a 'but'),
- after a little over 30 days it will stop working. Counting
- starts the first time you run the program. I warn you
- beforehand: re-installing it will not help you!
-
- Before I forget it: Thanks, Lars, Kyle, Arend, Michael,
- Ryan, Yiannis, Jozsef, Rick, and Brad for beta testing and
- turning my attempt at English into the real thing. And,
- Alun, I hope I didn't shock you too much by bringing this
- program out. You can't say I didn't warn you though ...
-
- OK, enough sales talk. Let's continue with the actual
- documentation. First thing will be how to install Serv-U to
- get you in business.
-
-
- 1. MAKING IT WORK - INSTALLATION
- ================================
-
- You're eager to get things going, but a little afraid of
- what lies ahead. Never fear, it couldn't be simpler. So
- let's get started!
-
- 1.1 Installation
-
- Nothing is simpler than installing Serv-U: just unzip it in
- the directory of your choice and run it. There is no need to
- change your 'PATH' or put anything in other directories.
-
- Serv-U comes with the following files:
- SERV-U.EXE - The FTP-server executable itself
- SERV-U.DOC - The documentation in MS-Word
- format
- SERV-U.TXT - The documentation in ASCII format
- README.TXT - Something you have to read
- BWCC.DLL - The Borland Custom Control
- library that creates the 3D-look
- REGISTER.TXT - A registration form in ASCII format
- FILE_ID.DIZ - Short description file for use by
- bulletin boards
-
- When Serv-U is started for the first time, it creates the
- file:
- SERV-U.INI - File containing all settings and
- user information
-
- The only fine point you might want to pay attention to is
- whether or not you already have the file BWCC.DLL in your
- Windows directory.If so, you can delete the one in the Serv-
- U directory, but make sure it is the same version (compare
- the sizes)!
-
- Serv-U offers two very distinct ways to try it out. Both
- with their own advantages and disadvantages. When started
- for the first time (or in absence of a SERV-U.INI file), it
- will show you a screen explaining the two try-out options
- and allowing you to choose one of them. The first choice is
- a fully functional try-out version exactly equal to the real
- thing, but it will stop working after 30 and some days. It
- does this by contacting a permission server over the
- Internet every time Serv-U is started. The permission server
- (my PC in fact) keeps track of when the program was started
- for the first time and uses that information to determine if
- it should be allowed to run this time, or not. It then sends
- this answer back to Serv-U and the program will consequently
- work or stop. To this effect, a network packet is sent to
- the permission server containing a version code, the IP
- number of your PC, and a run/norun flag. It receives back
- the same packet with the flag set to run or stop. This is
- all that is communicated between the systems, nothing more,
- nothing less!
- The second choice is a try-out version that is somewhat
- crippled. It will only allow a total of 10 file transfers (5
- PUTs and 5 GETs), it will show a message saying it is not
- registered to anyone who logs into the server, and finally,
- it will only stay on-line for one hour. You have to restart
- it again after that to get another hour. The advantage is
- that it will not contact another system over the network.
- Just to make sure this is clear: Once Serv-U is registered
- it will NEVER send anything over the network other than what
- is needed for regular FTP traffic!
-
- When you run Serv-U for the first time there will be no
- users and access will be restricted. To change this, go
- through the 'Setup' menu items and put in your heart's
- desires. I advise you to take a look at the next chapter,
- explaining the various menus, since the security setup is
- simple but not totally intuitive (sorry for that, but ...).
-
- For network use with a single executable shared between many
- users that need their own settings, the program looks for
- the existence of an environment variable with the name SERV-
- U. If this variable exists, it should be set to the path for
- SERV-U.INI. The program will then use this file. If this
- environment variable does not exist, the whole DOS path is
- searched including the Windows directories. If a file SERV-
- U.INI is found somewhere it will be used, this way also
- allowing for a single copy of the executable on a network
- server while having individual settings for each user.
- Finally, if SERV-U.INI was still not found, it will be
- searched for and created if necessary in the default program
- directory.
-
- 1.2 De-installation
-
- It is hard to imagine why, but if for some reason some day
- you want to get rid of Serv-U then that is just as easy as
- was installing it. Just delete the whole directory where you
- put it, and that's it! Serv-U does not change any system
- files and does not place any files in other directories.
-
- 1.3 Upgrading
-
- Upgrading from an earlier version of Serv-U is not a big
- deal either: Just copy the new .EXE file over the old one
- and you're all set. Your old SERV-U.INI file will be used by
- the new program so you don't have to re-install anything.
-
- 1.4 Known Bugs & Problems
-
- At the time this documentation is being written there are no
- known bugs left in the program. Everything that was found in
- the 1.0x versions has been fixed. There are however still a
- number of known 'problems', even if they are not bugs as far
- as I can tell. Let's go over them:
-
- * If you are using FTP Software Inc.'s TCP/IP software
- and WinSock stack, make sure you have version 2.3 of
- their software and v1.15.1 of their WINSOCK.DLL (or
- anything more recent). Older versions of their socket
- stack will give you a truck load of problems, and not
- just with Serv-U. Their latest WINSOCK.DLL is
- available via anonymous FTP from ftp.ftp.com.
- * According to my information, Serv-U does not work
- well with Sun's PC-NFS WinSock stack, nor with
- Chameleon's stack. As far as I could trace the
- problems it seems that in both cases the socket stack
- is to blame, it is simply not WinSock v1.1 compliant.
- If you do get it to work (a new version may come out
- that solves the problems) then please let me know so
- I can pass the advice on to others.
- * Netscape works well with Serv-U, but it seems never
- to close the connection when getting a directory
- listing, i.e. the big blue 'N' keeps 'pumping'. This
- is definitely a Netscape bug. I've contacted the
- company about it. Just ignore this behavior, it does
- not affect the actual operations.
-
- 1.5 Changes Since Version 1.00
-
- Many little things were changed since v1.00. Most of you
- will not notice the majority of the changes, but some of the
- them were needed to fix pretty Big Bugs. Below is a list of
- what was done:
-
- Version 1.1, released 19 March 1995:
- * Fixed some spelling errors in messages. Fixed logging
- to screen for time-out messages. Added log message in
- case limit of nr. of users is reached. Added log
- message when server is (re)started.
- * Added lots of logging.
- * The SYST command now replies with the code for a UNIX
- system. This is because some clients use it to
- determine the format of directory listings.
- * Time-out values for idle/hung connections are now part
- of server setup.
- * Drastically increased packet time-out for data
- transfer, now set at 5 minutes (was 30 seconds). Should
- be sufficient to allow transfer even on bad
- connections.
- * Log messages for failed data transfers now have a
- specification showing why.
- * Fixed bug that caused path for anonymous users with
- root as home directory to be reported without a '\' at
- beginning. The same bug caused absolute paths in CWD to
- be processed incorrectly.
- * Changed the HELP response to make WS_FTP work properly
- with Serv-U.
- * Added support for transfer to/from ports (PRN: AUX:
- LPTx: and COMx:).
- * Made a work-around for FTP Inc.'s WinSock stack. This
- stack does not handle SO_LINGER properly on closing a
- socket, causing 'data channel in use' errors.
- * Fixed bug that caused random truncation of PUT files in
- combination with some clients.
- * Fixed bug that allowed users to get 'dir' listings for
- paths with explicitly no access set to them.
- * Fixed bug causing 'dir' with absolute path name to go
- wrong.
- * Changed response messages to file transfers, only the
- filename is shown now, not the path name.
- * Added a retry period for the server to come online.
- This should solve problems with socket stacks that do
- not allow to re-use a port immediately after closing
- it.
- * Changed the timing of the '150-' response message for
- PASV transfers. It is now sent after the data
- connection is established instead of at the time of a
- transfer command.
- * The listening socket will now automatically be
- restarted when killed by the socket stack. Some stacks
- kill listening sockets without reason (Trumpet for
- one).
- * Fixed a bug that made RMD (=remove directory) fail if
- the directory was on a drive other than the active
- drive.
- * Username 'FTP' is now synonymous to 'ANONYMOUS'.
- * Fixed bug in very long directory listings (>64K data).
- * Clients that connect but never log in are now kicked
- off the system after 5 minutes.
- * User can now select the try-out method: Fully
- functional with contacts to my permission server, or,
- crippled but no permission server contacts.
- * Installed selectable path mechanism for anonymous:
- Either absolute paths (like a regular user) allowing
- for drive changes, or paths relative to the home
- directory (needed for WWW browsers).
- * Changed registration key to work with user/company name
- instead of IP number. Every time Serv-U is started it
- tries to read the key from a file KEY.TXT. Registered
- version displays the key in the "About" box and in
- reply to the FTP HELP command.
- * Changed the RETR and STOR replies (used for GET and
- PUT). They are now conform the average UNIX system.
- This makes WS_FTP more happy, so it shows a progress
- bar while downloading.
-
- Version 1.00:
- * Initial release 7 February 1995
-
- 1.6 A Word to the Wise (but paranoid)
-
- Many a word has been spent on the alt.winsock newsgroup in
- recent weeks on the try-out enforcement practice of Serv-U,
- and in a broader sense on the security of network programs.
- If you choose for the 'fully functional try-out version'
- then this program will communicate with a remote system (my
- PC in fact) to determine if it should be allowed to run or
- not. That is the way the 30 days of try-out are enforced. To
- that effect, information is exchanged between your PC and
- mine, and as people remarked: How do I know that my password
- file is not being sent over? Another, but similar question
- is: How can I be sure there are no 'back doors' in the
- server, allowing access to the author at any time? The short
- and hard answer is: You don't know and you can never be
- sure!
-
- I know this is not much of a deal, so I'll at least give you
- one option to establish my good intentions. To anyone who is
- interested, I offer to personally go over the source code
- with him/her (all 11000+ lines of it) and we'll compile it
- on the spot. You will understand that I am not going to hand
- out any source code. If you want to take it home you'd
- better bring along a whole lot of $$$'s!
-
- It is worthwhile to realize that security is a problem with
- any type of network program. It is fairly easy for a
- programmer to put code in, for example, a WWW browser that
- will wait for 5 months, until full moon and Venus coincide,
- then monitors PC activity and if a user hasn't been present
- for a few hours, or if it's 4 in the morning, will start
- sending over the whole hard disk to unknown destinations.
- This kind of thing is not easy to detect, don't let anyone
- tell you otherwise, and I still have to meet the system
- manager that keeps a network monitor running 24 hours a day,
- year after year and actually reads the log files. The bottom
- line is that you will have to trust the author of a program
- at some point, there is no other choice!
-
-
- 2. THE GRAND TOUR - MENUS
- =========================
-
- The menus and associated dialog boxes have been designed to
- be as simple as I could make them while still providing the
- needed features and flexibility. The next paragraphs take
- you on a grand tour through all of them. I highly recommend
- you to take a closer look at the part about setting up users
- and security under 'Setup - Users/Groups'. The default
- settings have been chosen to be both secure and reasonable.
- Make sure you know what they are about before changing them.
-
- 2.1 The File Menu
-
- The 'Logging' option can be checked to enable logging of FTP
- events to a file. If unchecked, logging will be to screen
- only. This option is only available if a logfile has been
- specified under the 'Setup - Logging' menu choice. Changing
- logging through the 'File - Logging' menu will only affect
- the current session. The changes are not saved and the next
- time you start Serv-U logging will again be as specified in
- 'Setup - Logging'. This can be convenient if, for example,
- you want to temporarily switch logging on/off for testing
- purposes.
-
- The other option is 'Exit', guess what that does . . .
-
- 2.2 The Edit Menu
-
- You'll find only two options here: 'Copy' and 'Clear'. The
- first one copies selected text from the Serv-U logscreen to
- the clipboard and 'Clear' wipes the logscreen clean.
-
- 2.3 The Setup Menu
-
- This is where the fun starts. Almost everything concerning
- the functioning of Serv-U can be set through the 'Setup'
- menu. There are two exceptions: First, if you insist on
- allowing access for a user without a password, and, second,
- if you want to make the Serv-U program invisible; meaning it
- will not show up in the list of the task manager. In both
- cases you'll have to edit the SERV-U.INI file directly. For
- more information on how to do this, take a look at the
- 'Internals' chapter.
-
- The dialog boxes where you can fill in your settings have
- not been made totally bullet proof. It is entirely possible
- to enter nonsense in certain items and the program will
- accept it (like path names that don't exist, etc.). Of
- course, things might not work exactly as you're expecting
- them to, but it should not cause the program to crash. The
- bottom line is that it is your responsibility to provide
- settings that make sense.
-
- Now, let's continue with the 'Setup' menu choices and
- associated dialog boxes.
-
- The 'Setup - FTP-Server' option
- This menu choice will lead you to a dialog box containing
- matters directly related to the workings of the FTP server
- itself.
- The first item is 'FTP port number'. This is the (you
- guessed it!) port number that the server will listen on for
- incoming FTP clients. The default is number 21, but you're
- free to fill in anything you want, provided it does not
- conflict with other network programs. Of course, the rest of
- the world expects a FTP server to listen on port 21, but
- changing to another number is one great way of insuring that
- only you and some selected friends will know about your
- server. One fun choice is to set this to port number 23 and
- then use a telnet program to 'telnet' to your own PC.
-
- The next item is the 'Maximum number of users'. With this
- you set the maximum number of simultaneous users at any
- given moment. Setting it to 0 will not allow anyone to
- enter, leaving it blank will allow an unlimited number, or,
- more precisely, until the PC runs out of network sockets. If
- you need your PC for regular work as well as being a FTP
- server, it is probably wise to set a maximum so normal
- operations will not be slowed down too much by clients.
- Likewise, 'Maximum number of anonymous' limits the number of
- 'Anonymous' users at any given moment. If 'Maximum number of
- users' is specified, then this will limit the total number
- of users, both regular and anonymous, even if 'Maximum
- number of anonymous' is set to a larger number.
-
- Some people have asked what would be reasonable settings for
- the maximum number of users that would still keep the system
- workable. The answer is: It depends. It depends very much on
- whether these users are local and thus capable of using up a
- large bandwidth in data transfer, or alternatively, if these
- users are further away on the Internet and cannot get
- transfer speeds of more than about 10 Kbytes per second.
- Another concern is the socket stack. Some WinSock stacks
- start behaving erratically when they have to service large
- numbers of sockets. Most notoriously is the Microsoft 32-bit
- stack, which has the tendency to kick the system back to MS-
- DOS without any warning when heavily loaded. For my own
- server I have set the limit to 10 simultaneous users. Since
- I mostly get relatively slow long distance traffic this
- means in practice that I have never noticed any slowdown in
- system response while using it for other work and the server
- has remained stable. If you use a dedicated PC as a FTP
- server it is probably safe to go to about 20 simultaneous
- users.
-
- To make sure that users cannot log onto your server and
- keep connections open until eternity it is possible to set
- 'Time-out users' and 'Time-out anonymous'. If a connection
- has been idle for more than the number of minutes you
- specify here it will be automatically closed. Filling in 0
- or leaving it blank switches off the time-out. It is a good
- idea to fill in some values here, since otherwise the system
- would slowly fill up with sockets that for some reason got
- stuck, not to mention users that connect and start a
- transfer just before they leave the office in the evening
- and then go home. Default values are 15 minutes for
- anonymous users and 10 hours (=600 minutes) for regular
- users.
-
- If you would like to leave your PC wide open for the rest of
- the world you can uncheck the 'Enable security' checkbox.
- But beware: DISABLING SECURITY WILL ALLOW ANYBODY ON THE
- NETWORK TO DELETE/CHANGE/COPY EVERYTHING ON YOUR PC!!! The
- only reason I put this option in is to make it easy for
- people that have their own local network and don't want to
- mess with users and passwords. By default this option is, of
- course, checked. DO NOT EVER LEAVE THIS OPTION UNCHECKED IF
- YOUR PC IS CONNECTED TO THE INTERNET!!!
-
- The last item is the 'Relative paths for anonymous'
- checkbox. By default this is checked and it causes anonymous
- users to see all directories and path names relative to
- their home directory. So, if your anonymous users have
- '\USERS\ANONFTP' as their home directory, they will receive
- back '\' when they inquire with the PWD command. Similarly,
- every reference they make to a file or a change of directory
- is taken relative to this path. The main reason it is in
- there is because WWW browsers need read access to the '/'
- (=root) directory to make them work. This way they believe
- they have access to the root and are happy, while on a PC
- you don't always want to give users access to your real root
- directory. The disadvantage of having this mechanism is that
- anonymous users are restricted to their home directory and
- below, nor do they have access to other drives. Sometimes
- you want them to be able to do this and unchecking this
- option will allow that. Anonymous users will then be treated
- like any other user as far as path names are concerned and
- they will be able to change to parallel paths and other
- drives if their access rights permit this.
-
- The 'Setup - IP-Access' option
- This dialog box provides the means to restrict access to
- your FTP server to certain IP-numbers. If for example, you
- work at a university and only want your faculty members to
- be able to access the server, then this is a great way to do
- it. In the upper left corner of the dialog box you can
- choose which type of rules you want to specify: 'Deny' or
- 'Allow' rules. The deny rules decide who should be kept out,
- the allow rules indicate who should be welcomed. THE ORDER
- OF THE RULES IS IMPORTANT! When a client contacts the
- server, the deny rules are looked at FROM TOP TO BOTTOM. If
- no matching rule is found, the allow rules are evaluated,
- again from top to bottom. The first matching rule applies,
- and evaluation is stopped. If there are no IP-access rules
- everybody can enter the FTP server. As soon as there is one
- rule, only those clients that pass the rule check are
- allowed to enter.
-
- You can type in a new rule in the 'Rule' edit and then use
- the 'Add' button to add the rule to the list. The 'Remove'
- button will remove the currently selected rule from the
- list. To change the order of the rules you have to select
- one by clicking the mouse on it, and then use the 'Up' and
- 'Down' buttons to move it around.
-
- Rules are nothing more than IP-numbers or ranges of IP-
- numbers. There are two special characters: the star '*' and
- the hyphen '-'. A star functions as a wildcard for checking
- the number. Any number will match that section of the rule
- if it is a star. The hyphen is used to denote a range of
- numbers. Simply separate the starting and ending values by a
- hyphen. For example, say all IP-numbers in your company look
- like 134.56.34.xxx with 'xxx' being any number. Now, you
- want to restrict access to your FTP server to other members
- of your company only. The way to do it is to create an
- 'Allow' rule that looks like this:
-
- 134.56.34.*
-
- That's simple, isn't it!? Likewise, if you know that the
- competition has IP-numbers in the range 168.76.xxx.xxx, you
- can keep them out of your server with the 'Deny' rule:
-
- 168.76.*.*
-
- Now, you need to share some of your files with a few
- colleagues, and management in your company is too cheap to
- install a local network. You find out that their PC's have
- IP-numbers 134.56.34.128, 134.56.34.129 and 134.56.34.130.
- You could of course make three 'Allow' rules, each with one
- of these numbers. A faster way to do this is to make a
- single rule like this:
-
- 134.56.34.128-130
-
- The special characters '*' and '-' don't need to be at the
- end of the IP-numbers, any place will do. The rule 221.*.76-
- 154.89 is perfectly OK. I wouldn't know when you'd need
- this, but, hey, the world is a strange place! Remember,
- order is important and deny rules are always evaluated
- before the allow rules. Experiment a bit, and you'll get the
- hang of it.
-
- The 'Logging' option
- This dialog box lets you specify what events you want to log
- and where to log them to: either to screen only or to both
- the screen and a logfile. If you are interested in the exact
- format of the logfile, it is described in detail further on
- in this manual.
-
- The first two items deal with logging to a logfile. The
- first one, 'Enable logging to file' switches writing to a
- logfile on or off. The second item, 'Logfile' is meant for
- entering the path and file name of a file to write all the
- log messages to. Of course, logging will only work when a
- valid logfile name is entered, it has to be a full path name
- including a drive letter. Log messages will always be shown
- on screen, regardless of these settings.
-
- The next items are a list of events for which logging can be
- enabled or disabled. The items are self descriptive except
- maybe for the last two. 'Log FTP commands' logs every
- command as it is received by the server and 'Log FTP
- replies' logs the command replies that are sent back by the
- server to the client. These two options are mainly intended
- for diagnostic purposes and are switched off by default. The
- default value of the other options is 'on'.
-
- The 'Setup - Signon/Signoff' option
- Your FTP-server can display a welcome message every time a
- user connects to it. This can be very useful to provide
- users with information about your FTP server, like where to
- find games, or 'Serious Software'. Likewise, you might want
- to say good-bye to them when they leave, or remind them to
- send that check . . . The way to do this is by entering a
- text in the 'Signon/Signoff' dialog box.
-
- There are a few special characters that you can enter in
- your signon/signoff text which get expanded while being sent
- to a client. These are:
-
- %t - displays the current time on your PC
- %d - displays the current date on your PC
- %u - displays the current number of Serv-U users
- logged in
-
- So, you could use the following signon text:
-
- Welcome, it is %t on %d, and you are user number %u
-
- I'm sure you'll figure out by yourself what this will look
- like to the user . . . If you have ideas for other useful
- special characters, let me know about it!
-
- The 'Setup - Users' option
- Unless you switched off all security, you are going to have
- to set up users. And, you guessed it, this is the place to
- do so!
-
- Upon choosing this option a dialog box is presented to you.
- It contains a list of all known users. To change the
- settings for a certain user, just click on the name and
- click 'Edit' (or just double-click on the name). Now, if you
- just started this server for the first time there will be no
- names, short of Divine Intervention. Never mind, just go
- ahead and click 'Edit'. You'll be presented with an empty
- dialog box containing entries for everything you always
- wanted to set for a user.
-
- The next thing is important, so pay attention: You can fill
- in or change any name in the 'User name' field. If this name
- does not exist it will be added to the list of users. If
- this name exists, the settings for this user will be changed
- to the ones in the dialog box. So, if you double-clicked on
- user 'James' and then go on to set his password to
- 'lightbulb' and you change the user name to another of your
- users, 'Tanya', then Tanya is going to be mighty upset when
- she tries to enter your FTP server! James will of course
- have to remember his old password, since nothing changed for
- him. This way of dealing with users might strike you as
- somewhat strange. The advantage of it is that you can take
- an existing user and, by making only the few needed changes
- turn it into a new user.
-
- Now let's take a closer look at the various fields in the
- 'Edit User' dialog box. I've dealt with the 'User name'
- field, so this brings us to 'Group name'. Every user can be
- part of a group. The convenience in making users part of a
- group is that you can leave common settings for all users of
- a particular group blank and just fill them out in the 'Edit
- Group' dialog box. This goes for all settings, including
- password, home directory and path access rules. To overrule
- a certain group setting, simply provide one for the user.
-
- For example, you're the Pentagon system administrator and
- want to create FTP access for everybody in case they are on
- field trips. So, you hook up this old PC to the net, install
- Serv-U and register it (hypothetical situation). Then you
- proceed to create a group 'StarWars'. Now you go on to set
- the password for this group, 'RonaldR', and their home
- directory (all their files are shared anyway),
- 'y:\super\secret\starwars'. You fill in some access path
- rules as well, and you're all set: The only thing left is
- entering the user names, you don't have to provide any other
- information per user. A 10 minute job.
- Now there's this occasional guest user, 'BillyC'. You don't
- want him to get into certain directories, so you make him a
- member of the group but specify those directories in his
- access path rules with 'no access', and you're all done.
-
- We did get ahead of ourselves in the discussion of the
- various fields, so let me back up a bit. The 'Password'
- field shows stars ('*****') when entering a password. Don't
- worry, this is only to protect you from prying eyes. Also if
- you're editing an existing user who has a password, nothing
- will be shown here, but the password is still there. To keep
- the existing password for a user: don't edit this field! The
- passwords are stored encrypted using UNIX 'crypt'. This
- algorithm works like a sausage machine: you put in a pig on
- one side and turn the crank, out comes the sausage. But,
- pushing in the sausage while turning the crank backwards
- will not get you a pig! It is quite secure, I wouldn't know
- of a way to get the plain text password back (the NSA might
- though).
-
- The 'Home directory' field is for the user's home directory
- (to kick in an open door). This is the place where he or she
- is put immediately after logging in. Each user needs a home
- directory, without one the server will not permit logging
- in. Of course, if a user is part of a group, and this group
- has a home directory you don't have to specify one here. You
- might want to, if this user needs a different one from the
- rest of the group. Home directories always need to be full
- path names, including a drive letter!
-
- This brings us to the last part of this dialog box, the
- 'File/Directory access' rule list. This list contains a
- number of paths with access information coupled to each
- path. Access to the PC is only allowed according to these
- paths and their access information. No access paths, no
- access! So, there is one path you might always want to be in
- the list: The user's home directory.
-
- When a user executes a FTP command concerning files or
- directories, the user's path list is checked to see if the
- command should be allowed to proceed. The list is evaluated
- FROM TOP TO BOTTOM! SO THE ORDER OF THE PATH ACCESS RULES IS
- IMPORTANT!!!
-
- There are five different types of access information that
- can be set for each path:
- * 'Read' access, this allows files to be copied from
- the PC using the FTP 'get' command.
- * 'Write' access, allowing files to be copied to the PC
- using 'put', but not changed, deleted, or renamed.
- * 'Delete' access, allowing the user to change files,
- rename, or delete them. Having 'Delete' access
- automatically includes write access.
-
- The last two items deal with directories:
- * 'Create' access lets the user create new directories
- at this path.
- * 'Delete' lets the user delete directories.
-
- To get a directory listing any one of these rights is
- sufficient for a path. If none of the rights have been
- granted for a certain path, then the user has no access what-
- so-ever to this path.
-
- The rights of a certain path are valid not only for the path
- itself, but also for all subdirectories of it. If you don't
- want this to happen for a certain subdirectory you have to
- specify this directory with the desired rights before its
- parent in the list of paths.
-
- Since one example can say more than a thousand words, or
- something along that line, let's work through a typical
- situation. Assume you want to setup an 'Anonymous' FTP site.
- This needs a directory tree with all the goodies the users
- might want, for which they need read access. You also need
- an upload directory where users can upload new goodies, but
- you don't want others to be able to immediately get their
- fingers on it, since you want to check for viruses first.
- So, this directory needs write but no read access. We decide
- to put everything on the big network drive, 'Y:', under the
- 'ANONFTP' directory. We also create the 'UPLOAD' directory
- here for uploads. In Serv-U we would create the user
- 'Anonymous' with the following access path rules (and in
- this order):
-
- Y:\ANONFTP\UPLOAD - write rights
- Y:\ANONFTP - read rights
-
- Reversing the rules will not work: If a user would write to
- the upload directory the security mechanism will check
- against Y:\ANONFTP and conclude that UPLOAD is a
- subdirectory, so the rule applies, and the rule grants only
- read access. Please take note that write access still allows
- a user to get a directory listing of the UPLOAD directory,
- but he won't be able to download anything from there.
-
- If the drive letter is left out of a path, it applies for
- all drives. So, a fast way to get full access to all files
- on all drives is:
-
- \ - read, write, delete, create dir
- and delete dir rights
-
- Now, the same mechanism that determines access to
- directories also applies to files. It is possible to grant
- access to specific files on a per-file basis. Lets take the
- previous example about the anonymous FTP server. We want to
- put a file 'SECRET' in the ANONFTP directory, but nobody is
- allowed to read it of course. So, our access paths list
- would look like this:
-
- Y:\ANONFTP\SECRET - no rights
- Y:\ANONFTP\UPLOAD - write rights
- Y:\ANONFTP - read rights
-
- Again, the order of the paths is important! The directory
- access rights do not have any meaning for files.
- Alternatively, if SECRET was a directory instead of a file,
- the above settings would keep users out of this directory.
- In fact, they would not even be able to get a directory
- listing.
-
- Serv-U also allows access to all PC ports: PRN:, LPT1:,
- LPT2:, LPT3:, LPT4:, AUX:, COM1:, COM2:, COM3:, and COM4:.
- This can be a convenient way of setting up a 'network'
- printer by transferring files directly to PRN: using FTP.
- These ports are treated like any regular path name, a user
- needs access rights to use them. So, to make a printer on
- PRN: accessible and a modem on COM2: the user needs the
- following rights:
-
- PRN: - write and delete rights
- COM2: - read, write and delete
- rights
-
- The buttons speak for themselves, so I'll not waste any
- bytes on them.
-
- There are two special user names, although in setting them
- up they are dealt with exactly the same as any other user.
- These are the user names 'Anonymous' and 'ALL'. (Actually
- there are three special names: User name 'FTP' is taken to
- be synonymous to 'Anonymous'.)
-
- We already came across 'Anonymous', it allows users to log
- in without a password. The FTP server asks for their E-mail
- address instead and logs this. The 'Password' section in the
- 'Setup Users' dialog box is ignored for this user name. If
- an anonymous user logs in, he will normally not see the
- whole file structure. To him everything will appear to be
- relative to the home directory. So, to abuse our previous
- example yet another time: After logging in he will be put in
- Y:\ANONFTP, but if he asks for the current path the server
- will answer '\'. All actions concerning files will, also, be
- relative to his home directory. The reason for making it
- this way is that certain World Wide Web browsers that log
- into an anonymous FTP server will execute a 'change
- directory' to '\' immediately thereafter. They get mighty
- confused if this is refused, so by making their home
- directory appear to be '\' this is avoided.
-
- The other special user name is 'ALL'. Now where does this
- tie in? Well, every action requiring security clearance
- (checking a password during login, reading, writing, etc.)
- is first checked against the settings for the particular
- user. If no appropriate setting is found there, and the user
- belongs to some group, the group settings are checked. If
- still no corresponding setting is found, the user 'ALL' is
- consulted (if it exists). So 'ALL' works as a blanket for
- all users, providing the most common settings. Of course,
- this also provides a potentially big security hole, so be
- careful!
-
- The 'Setup - Groups' option
- Choosing this presents you with exactly the same dialog box
- as the 'Setup - Users' section. The only difference is that
- you cannot fill in a user name. Everything works the same
- way too, so I'll let you figure it out. Of course, you're
- not dealing with users here but with group names.
-
- 2.4 The Help Menu
-
- This menu choice is still a bit underdeveloped, it has only
- the 'About' item. This does however present you with a very
- beautiful 'about' box, thus more than making up for the lack
- in other areas. This is also the place where you will see
- your name or that of your company appear once the program is
- registered.
-
- 2.5 The Logfile and Screen
-
- Although they are strictly speaking not part of the menus,
- this is a convenient place to discuss the format of the
- logfile and screen messages.
-
- Messages are always logged to the Serv-U window, regardless
- of the logfile settings. There is no difference between the
- messages on screen and the ones in the logfile, although
- some things are only shown on screen. The latter are server
- and program related matters, like version number, server
- going on/off-line etc.
-
- Log messages always have the same layout. The reason for
- using such a strict format is to make it easier to search
- for specific messages or certain types of messages. This
- also makes it possible to do automatic accounting by machine
- reading the logfile if you need it. The logfile can be read
- or copied at any moment (It is also possible to get the file
- via FTP using Serv-U itself!), even when Serv-U is running.
- The format is as shown below, in stylized form:
-
- [n] DATE TIME - (xxxx) MESSAGE
-
- The first number, 'n', indicates the type of message that is
- being logged. Currently there are six different categories:
-
- 1 - system messages (problems etc.)
- 2 - FTP commands (from client to server)
- 3 - GET file transfers
- 4 - PUT file transfers
- 5 - security related events (users logging in etc.)
- 6 - FTP replies (from server to client)
-
- The second number, 'xxxx', is a unique ID assigned to a
- client the moment the connection is made. All further
- messages concerning that client will use the same number.
- Again, this was done to make it easy to do automated
- accounting, or, to find back events using the 'search'
- facilities of every editor.
-
-
- 3. THE INNER WORKINGS
- =====================
-
- Before I go on to describe the settings of the SERV-U.INI
- file I want to spend a few words describing how Serv-U was
- made and how it goes about its job.
-
- 3.1 Serv-U Internals
-
- The program was written using Borland C++ version 3.1. To
- check for shaky pointers and catch all those resource leaks
- the program Bounds Checker version 2.1 from Nu-Mega was
- used. I think no serious Windows programmer should be
- without the latter, very recommended!
- This whole project started about a year ago after much
- disappointment with the existing FTP servers for WinSock. In
- its current version it consists of just a little over 11000
- lines of C++ code, divided into 16 C++ classes. The whole
- program was constructed from scratch, not using any existing
- FTP server code, and is tailored to MS-Windows and WinSock.
-
- Internally, everything is very much compartmentalized, using
- a different class for different partial tasks. There is a
- WinSock class library, providing hi-level access to
- WinSockets and hiding all the nasty parts of dealing with
- them. It uses 100% asynchronous WinSock functions (also
- called 'non-blocking' functions) thus avoiding problems with
- multiple active sockets for a single task and re-entry (let
- me know if you're interested in this class library, I'm
- thinking of selling it in source code format). There is a
- FTP-manager class, taking care of listening for clients, and
- setting up instances of the FTP-command interpreter class
- when this happens. The latter does the actual interpretation
- of the FTP commands, talking to the security class for
- clearance and the WinSock class for communications. Then
- there are some utility-like classes, like those dealing with
- setup and logging. By having all these compartments that
- handle very well defined tasks, I hope to be able to easily
- extend this FTP server and fix those (hopefully few)
- remaining bugs quickly!
-
- 3.2 The SERV-U.INI File
-
- All the settings for the server, users, and groups are
- stored in a single file in text format. This file is always
- named SERV-U.INI. When the program is started it looks for
- this file in a number of different places: First, an
- environment variable SERV-U is checked. If this variable
- exists it should be set to the path where SERV-U.INI is
- found. Next, if this variable does not exist, the whole DOS
- path is scanned, including the Windows directories. The
- first SERV-U.INI file found on the way is used. This makes
- it easy to set things up for network users where there is a
- single copy of the program but each user needs its own
- settings. If after this no .INI file has been found yet the
- directory of the Serv-U program is searched. If SERV-U.INI
- is found here it will be used, if not, the program will
- create one, in the program directory.
-
- We'll now go over all the items that can appear in SERV-
- U.INI. I will show you an invented setup file:
-
- [GLOBAL]
- Security=TRUE
- PortNr=23
- MaxNrUsers=15
- MaxNrAnonymous=10
- Invisible=TRUE
- Logfile=c:\serv-u\logfile.txt
- Logging=YES
- TimeoutUser=600
- TimeoutAnonymous=15
- TryOut=Crippled
- LogGETs=ON
- LogPUTs=ON
- LogSystemMes=ON
- LogSecurityMes=ON
- LogFTPCommands=OFF
- LogFTPReplies=OFF
- RegistrationKey=S%FgdfsdEvG,Rob Beckers,Cat Soft
- AnonRelPaths=YES
- Window=100,100,400,300
-
- [SIGNONOFF]
- SignOn1="Welcome to Robby's FTP-Server!"
- SignOn2="It is %t local time on %d and you are user nr.
- %u"
- SignOff1="Thanks for logging in!"
- SignOff2="Hope to see you again soon . . ."
-
- [IP-ACCESS]
- Bounce1=132.68.175.201
- Bounce2=223.*.*.*
- Allow1=132.68.176.53
- Allow2=132.68.175.*
- Allow3=101.43.23.30-40
-
- [USER=Anonymous]
- HomeDir=d:\anonftp
- Access1=d:\anonftp\upload,W
- Access2=d:\anonftp,R
-
- [USER=Rob]
- Group=system
- Password=WdRx.Jlk0kemm%
- HomeDir=c:\
- Access1=\,RWMCD
- Access2=lpt1:,WM
- Access3=prn:,WM
- Access4=aux:,WM
- Access5=lpt2:,WM
- Access6=lpt3:,WM
- Access7=lpt4:,WM
- Access8=com1:,RWM
- Access9=com2:,RWM
-
- [USER=ALL]
- HomeDir=y:\
- Access1=y:\,R
-
- [GROUP=SYSTEM]
- Access1=c:\system,RWDCM
- Access2=d:\,RWDCM
- Access3=y:\novell,RWD
-
- All but three of these settings can be changed and set
- interactively through the 'Setup' menus. The exceptions are
- the entries for 'Invisible', 'RegistrationKey', and
- 'Window', and if you desire a user to really have no
- password the entry 'Password=' has to be set manually for
- that user.
- The following paragraphs will describe each section and
- entry in more detail.
-
- [GLOBAL]
- All the settings related to the Serv-U program itself, i.e.
- the functioning of the FTP server and system functions, are
- found in the '[Global]' section.
-
- If security should not be enforced, the 'Security' entry can
- be set to FALSE or 0. Doing so will leave the FTP server
- wide open to everybody!!! Default value for 'Security' is
- TRUE.
-
- The 'PortNr' entry determines the IP port that the server
- will listen on. Default value is 21.
-
- To limit the maximum number of simultaneous users the
- 'MaxNrUsers' entry should be set to the desired number. No
- entry or a negative number results in no maximum, only the
- number of available sockets will limit the number of users
- in that case. Similarly, the 'MaxNrAnonymous' entry limits
- the maximum number of 'Anonymous' users. The value put here
- is only meaningful if it is smaller than that of the
- 'MaxNrUsers' entry.
-
- For system managers that don't want their users to mess
- around with the server settings, it is possible to make Serv-
- U invisible by setting the 'Invisible' entry to TRUE, 1 or
- YES and put the Serv-U program in the 'startup' group. When
- this is done the server will not show up in the task manager
- list. One consequence is that there is no way to stop the
- program short of exiting Windows. Default is NO for this
- entry.
-
- The 'LogFile' entry should specify a full path and name for
- a logfile if logging is desired. There is no default
- logfile. To actually switch logging on and off the 'Logging'
- entry can be set to ON or TRUE, or OFF or FALSE. Switching
- logging ON will only work if a logfile is specified. By
- default 'Logging' is set to ON.
-
- The entries 'TimeOutUser' and 'TimeOutAnonymous' specify a
- time-out in minutes for respectively regular users and
- anonymous users. If a FTP connection is left idle for the
- indicated amount of time it is automatically closed. Filling
- in 0 results in no time-out. Default values are 15 minutes
- for anonymous and 10 hours for regular users.
-
- The next one deals with the way the program can be tried out
- (when there is no registration code). 'TryOut' can be
- 'Crippled' or 'Full'. The first allows a user to do a
- maximum 5 GETs and 5 PUTs per session, puts the server off-
- line after 1 hour, and notifies clients that they are
- looking at an unregistered try-out version. However, it does
- not contact my permission server. The 'Full' option gives
- you no limitations while trying the program, it is exactly
- equal to the registered version. The downside is that it
- does access my permission server to ask for permission to
- run each time Serv-U is started. This is how the 30 days of
- try-out are enforced.
-
- All the 'LogXXXX' entries switch logging options on or off.
- Their names say it all, so I'll let you figure them out.
-
- The 'RegistrationKey' entry is used for entering the
- registration code. You get this code after registration. By
- default it has no value and for evaluation of the program it
- should be left blank or out of the .INI file.
-
- 'AnonRelPath' determines if anonymous users should be
- treated with all path names relative to their home
- directory. This is desirable for use with WWW browsers that
- insist on having access to the root directory ('/').
- Switching this on limits anonymous users to the subtree of
- their home directory, they cannot switch to other drives. If
- you switch it off then anonymous users will be treated like
- all others. Default it is switched on.
-
- The last entry is 'Window' and this is set by Serv-U every
- time the program is stopped. It contains the last position
- and size of the program window, in the format
- 'top,left,width,height'
-
- [SIGNONOFF]
- This section contains the messages that are displayed after
- a user contacts the FTP server and just before he
- disconnects. Every line has a separate entry with a number
- at the end, denoting the order. The signon message is put in
- 'SignOnxx' entries (with xx the line number), and the
- signoff message is put in 'SignOffxx'.
-
- There are three special character combinations recognized by
- Serv-U and they are expanded to their actual values when a
- user logs on or off. These are:
-
- %t = current time
- %d = current date
- %u = current number of users that are logged in
-
- A tip: Keep the number of lines and the their length
- limited. Most FTP clients will mess up lines over 80
- characters, and since a FTP reply code is tagged to the
- beginning of these lines before they are sent, it is wise to
- keep them to less then 75 characters.
-
- [IP-ACCESS]
- This section determines which client IP-numbers will be
- allowed access to Serv-U. There are two kinds of rules:
- Those that refuse access in the form of 'Bounce' entries,
- and those that grant access using 'Allow' entries. If this
- section doesn't exist, or no entries are found, then all
- clients are allowed to contact the server. The reverse is
- also true, if there is even a single entry ('Bounce' or
- 'Allow') then only those clients will be allowed to contact
- the server that pass the rule. All entries are numbered
- ('Allow1', 'Allow2' etc.) and they are evaluated according
- to their number from first to last. Numbers should be
- consecutive. The 'Bounce' rules are evaluated before the
- 'Allow' rules.
-
- The IP-number of the client is matched section by section to
- each rule until a match is found. If the matching rule is
- one of the 'Bounce' ones, the client is disconnected. If the
- IP number matches an 'Allow' rule then he can proceed. The
- rules can be exact IP-numbers, or contain special
- characters. There are two of those:
-
- * = wildcard, match any number
- - = denotes a range
-
- A quick example: The rule '132.*.76.48-89' will allow entry
- to clients with an IP-address starting with 132, the second
- section can be anything (0..255), the third must be 76 and
- the last section should be between 48 and 89 (limits
- included).
-
- [USER='Name']
- The information about a user is stored in this section,
- 'Name' stands for the user's name. Each user has a separate
- section. It contains information needed to authenticate a
- user during login, and rules determining what this user is
- allowed to access. The Serv-U program will first check this
- section for a regular user. If no applicable information is
- found and the user is a member of a group, the group is
- addressed for the same information. If the result of this is
- still undetermined, the special user name 'ALL' is searched.
-
- Now to the entries that can be found in this section. The
- identity of a user is verified by comparing his password,
- after encryption, with the one in the 'Password' entry. The
- UNIX 'crypt()' command is used to encode the passwords. This
- makes it possible to extract users with their password from
- the PASSWD file of a UNIX system, the same passwords should
- work on both systems. Unfortunately, there is not a single
- standard for password encryption on UNIX systems these days.
- Serv-U uses the most common scheme, but this might not work
- for your system.
-
- If the password matches, the home directory of the user is
- taken from the 'HomeDir' entry. This should always be a full
- path name, including drive letter!
-
- To make a user a member of a certain group, the 'Group'
- entry can be used. All information needed and not found in
- the user's section; password, home dir and file/directory
- access, are then looked for in the group's section.
-
- Information about file and directory access for a user is
- stored in the 'Access' entries. Each of these is numbered,
- and access information is checked in order: first comparing
- it to the first rule, then the second, etc. The numbering
- must be consecutive. Access rules start with a path or file
- name. These paths are usually full names, including drive
- letter. If the drive letter is missing, they apply to all
- drives. Also, access rules apply not only to the exact path,
- but to all subdirectories as well. If different settings are
- needed for a subdirectory, than a rule with that directory
- should appear before its parent, i.e. with a lesser number.
- The path in an access rule is followed by a comma and the
- access information itself. This can be a combination of up
- to five different characters:
-
- R = read access to files
- W = write access to files
- M = modify access to files (implies write access)
- C = right to create subdirectories
- D = right to delete subdirectories
-
- It is entirely possible to have no access information at all
- (only a path). This means that the user will not have any
- access to that path. For a user to be able to list the files
- in a directory he needs at least one of these five rights,
- any will do. Another thing to realize is that write access
- to a file does not imply read access! As you can see it is
- also possible to specify access rights for the parallel and
- serial ports. They are part of the regular security scheme
- and to transfer to or from a port a user needs access
- rights. Then finally, the path in an access rule does not
- have to point to a directory. It is also possible to specify
- a filename. Of course, the 'C' and 'D' rights will not have
- any meaning then.
-
- There are two special user names: 'Anonymous' and 'ALL'. If
- there is an user 'Anonymous', it will be possible to log
- into the server without a password. Instead, Serv-U will ask
- for the user's E-mail address and log this. Most of the
- regular entries apply for 'Anonymous' as well, except
- 'Password' and 'Group', these are ignored. In fact, for
- anonymous users the sections for groups and 'ALL' are never
- searched.
-
- The user 'ALL' is searched if no appropriate rule is found
- in a user's or his group's entry. It can contain any of the
- regular entries.
-
- [GROUP='Name']
- These sections contain the group info. The entries here are
- exactly the same as those for a user, except that the
- 'Group' entry has no meaning of course.
-
-
- 4. GETTING IN TOUCH - BUGS & REGISTRATION
- =========================================
-
- I'd love to hear from you! Not only for bugs, but also if
- you have ideas, questions, or remarks. Please drop me a
- line! The fastest and easiest way to do so is by E-mail. My
- address is:
-
- RJB@eel-mail.mc.Duke.edu
-
- Regular mail should work as well, but might take a bit
- longer. My address for this is:
-
- Rob Beckers
- 1911 Erwin Road, Apt. I
- Durham, NC 27705
- U.S.A.
-
-
- 4.1 Reporting Bugs
-
- Nothing in this world is perfect, least of all me! Alas,
- chances are that despite careful testing you'll still find a
- bug. Please don't think others will report it, let me know!
- There are a few things I need to know in order to improve
- chances of fixing the beasty, so take note of the following:
-
- * Most important: Can you get the same bug to appear by
- repeating certain actions! Please try hard, without a
- recipe for repeating a bug it's going to be very hard
- to track it down.
- * What TCP/IP and WinSock stack are you using? Brand/type
- and version number please. Also, what operating system
- (DOS version and Windows or Windows-For-Workgroups
- version x.xx)? Any memory manager (QEMM etc.), what
- version?
- * Please indicate also if this bug is merely cosmetic or
- of vital importance for using Serv-U. Somewhere in
- between is possible as well of course. By the way, I
- consider security related bugs very important!
- * Finally, please give me a chance to fix a bug, before
- you start to shout all over the Internet how bad this
- program is . . .
-
-
- 4.2 Registering Serv-U
-
- If you're happy with the performance of Serv-U, then please
- make me happy and register this program! Just a few words
- for those who are in doubt: Making this program took me
- (very literally) months of work, spread out over the last
- year. Your registration fee is going to motivate me to
- continue improving Serv-U. In general, registration is
- important for shareware programs: It makes it possible for
- you to use professional quality software for peanuts.
- Lastly, being a biomedical engineering graduate student, I'm
- not exactly making lots of $$'s (to put it mildly). So,
- those 20 bucks for registration mean a lot to me!
-
- To register, please fill out the registration form below
- (There is a separate one in ASCII format in the file
- REGISTER.TXT.) and send it to me. Payment should in
- principle be included with the registration form, although
- there are exceptions possible for foreign (non-USA)
- customers, to which I'll get in a moment. If you are inside
- the US a personal check will do fine. The registration fee
- is $20 for each copy. If you want to make me even happier
- and need several copies, the following license prices apply:
-
- The FTP Serv-U license prices:
-
- 1-9 $20 each
-
- License for:
- 20 $200
- 50 $400
- 100 $600
- 100+ $500 per block of 100 users
-
- Licenses for more than 500 users are negotiable.
-
- Educational discount: For licenses of 50 or more users:
- 30% discount.
-
- Payment from outside the USA is a problem. Despite all the
- international networks the easy solutions are costly and the
- cheap solutions risky. The exceptions are if you are inside
- the Netherlands, then payment is easy (see further on), or
- if you're in a European country and can use Euro-checks, see
- below for details. For non-US customers the following forms
- of payment are accepted, in order of preference:
-
- * By Euro-Cheque, for Europeans only. The check must be
- made out in NLG (=NederLandse Guldens), and the price
- per copy is NLG 35. Please don't forget to sign the
- check both on the front and the back and to fill in
- the 4 digit security number on the back. Make it
- payable to R. Beckers - Bunde. Mail the check to: Rob
- Beckers; St. Agnesstraat 16; 6241CB Bunde; The
- Netherlands. Please mail the filled out registration
- form to the US address mentioned on the form.
- * By check, drawn at an American bank. The check should
- be made out to Rob Beckers (Alas, Cat Soft only
- exists in the mind for now).
- * By American Express Travelers Checks for the correct
- amount in US dollars. These are cheap and safe, but
- there might be a minimum commission charged by your
- bank. The checks should be made out to Rob Beckers
- and don't forget to sign them twice!
- * By Postal Money Order. As I understand it, you can
- buy these international money orders in most
- countries for very little money ($3 here in the US).
- Payment is in your own currency, but the money order
- should be made out for USD $20 and to Rob Beckers.
- * By cash, but only in US dollars and I give no
- guaranties about safe arrival! Please DO NOT send me
- other currencies, it would probably cost me much more
- to convert them to $$'s than it costs you. A trick I
- found useful for sending cash in envelopes: put the
- money in a folded sheet of paper so it doesn't shine
- through the envelope. This improves chances of
- arrival considerably.
-
- For companies buying a site license there are a number of
- less cheap but more secure options, again in order of
- preference:
-
- * By direct money transfer in US dollars to my American
- bank account. This costs you $35 extra, since that is
- the atrocious rate my bank charges me to receive
- money this way. If you are interested, ask me for
- details.
- * By sending me a (foreign) check from your own bank.
- The check should be made out in USD and payable to
- Rob Beckers. Using this option costs you $18 extra,
- which is how much my bank charges me for cashing such
- a check.
- * By direct money transfer to my Dutch bank account.
- Only $9 extra for this one, which is what they charge
- in the Netherlands. Ask me for details if you're
- interested.
-
- Now for the Dutch:
- Daar ik nog steeds een Nederlandse girorekening heb is het
- mogelijk op die wijze te betalen. De prijs bedraagt f. 35,--
- per kopie. Dit dient overgemaakt te worden op girorekening
- 53.95.461 ten name van Rob Beckers, te Bunde. Vermeld s.v.p.
- "Registratie Serv-U" zodat duidelijk is waarvoor betaald
- wordt. A.u.b. geen geld vanuit het buitenland overmaken! Van
- die 35 piek zou dan heel weinig overblijven. Het
- registratieformulier gewoon naar de VS sturen (post of E-
- mail).
-
- Next, what do you get if you register? As soon as I get your
- registration I'll send you a registration code plus
- instructions on how to add it to the program. This will
- enable you to use the program, even after the 30 day try-out
- period. Please let me know your E-mail address, so I can
- notify you fast. In case I have your E-mail address you'll
- also get notified when there are updates. Once registered
- you'll get those updates for free. That is, you can use the
- same registration code on the updates, but you'll have to
- get them yourself. Apart from all this you'll also get the
- nice, warm feeling of having contributed to improving my
- financial status!
-
- The registration code is tied to the user/company name you
- specify on the registration form. You can see if your server
- is registered by looking at the 'About' dialogbox: If
- registered it will tell you to whom. Another thing to keep
- in mind is that the registration information is sent back to
- any FTP client who uses the FTP command 'HELP'. This is not
- a much used command but in principle it allows the whole
- world to find out who paid for your copy of Serv-U. If
- you're the lawful owner of the server this shouldn't bother
- you, if not...
-
- The next page is the registration form. Please use this form
- for all registrations! That way I can keep my administration
- manageable.
-
- ------------------------------------------------------------
-
- ROB BECKERS
- 1911 Erwin Road, Apt I
- Durham, NC 27705
- U.S.A.
-
-
-
- REGISTRATION FORM SERV-U
- ========================
-
-
-
- Name: ...........................................
-
- Company Name: ...........................................
-
- Address: ...........................................
-
-
-
-
-
- Phone Number: ...........................................
-
- E-Mail Address: ...........................................
- (Internet only please)
-
- Additional comments, suggestions, complaints, praise, etc:
-
- ............................................................
-
- ............................................................
-
- ............................................................
-
-
- Registration fee is $20 per copy. Send this order form along
- with your payment to: Rob Beckers, 1911 Erwin Road Apt. I,
- Durham NC 27705, USA.
-
- If you have any questions, comments or suggestions please
- contact Rob Beckers at the above address or via e-mail to
- RJB@eel-mail.mc.duke.edu. Check out the site license prices
- if you need multiple copies.
-
- As this software is shareware it comes 'as is', there is no
- warranty implied or otherwise, nor is support provided.
- However, if you discover any bugs or problems please contact
- the developer at the above e-mail address.
-
-